查看原文
其他

Python正式发布年度大更新3.13.0:实验性支持no-GIL、性能起飞!

开源中国 OSC开源社区
2024-10-25
↑点击上方蓝字关注「OSC开源社区」
Python 3.13.0 主要变化包括一个新的交互式解释器、对在自由线程模式(无全局解释锁,no-GIL)下运行的实验性支持 (PEP 703),以及即时编译器 (PEP 744)。这些改进预计将带来性能的适度提升。
Python 3.13.0 最新稳定版已于 10 月 7 日正式发布,对语言、实现和标准库进行了一系列更改。

据称该版本原定于 10 月 1 日推出,但由于在特定工作负载中出现了“明显”的性能回归问题,最终导致推迟发布。

性能回归问题由此前引入的增量循环垃圾收集器导致,正式版已将该功能回滚,Python 团队将在 Python 3.14 中重新考虑引入该功能。

Python 3.13 带来了两项重大更新:全局解释器锁的可选禁用 (no-GIL) 和实验性的即时编译器 (JIT)
GIL 的移除可提高基于线程的并行处理能力,从而优化多线程程序的性能;JIT 编译器将 Python 代码编译为机器代码,以提高代码执行效率。
这些改进预计会显著提升 Python 代码的性能,尤其是在 CPU 密集型任务上。
下图是开发者针对 Python 3.12 和 3.13 的性能测试对比,可以看到 no-GIL 和 JIT 带来的性能提升。
如上图所示,Python 3.13 在禁用 GIL 的自由线程模式下性能明显优于其他版本,这表明此版本的 Python 能够充分利用计算机上的所有内核。
而启用 JIT 的 Python 3.13 也比 Python 3.12 和常规的 Python 3.13 更快。
按照 Python 开发团队的计划,no-GIL 的实现将分成三个阶段:
  • 实验阶段。通过提供 build-time 选项,让开发者在构建时选择启用自由线程 (free-threaded)。在此阶段对外明确告知是实验性的,不支持用于生产环境。
  • 支持但不默认阶段。该阶段将在 API 和 ABI 变更充分解决,并且有足够的社区支持时开始启动。
  • 默认阶段。此时默认启用自由线程(初期仍支持禁用),但此阶段确切的标准很难确定,目标是使开发者尽可能无缝且无痛地进行升级和兼容。


Python 3.13 其他值得关注的变化:

  • 一个新的交互式解释器 (REPL)

  • iOS 和 Android 被正式纳入 Tier 3 级别的官方支持平台

  • 提供更好的错误信息

  • 改进静态类型

  • 支持的最低 macOS 版本已从 10.9 更改为 10.13 (High Sierra)。且今后将不支持较旧的 macOS 版本

详细更新说明查看官方文档
https://docs.python.org/3.13/whatsnew/3.13.html

相关来源

https://www.python.org/downloads/release/python-3130/

https://realpython.com/python313-new-features/

https://blog.python.org/2024/10/python-3130-final-released.html


延伸阅读

no-GIL Python,启动!

Python霸权地位已无可争议

Python 3.12正式发布:性能提升、no-GIL将在3.13提供

Python指导委员会计划接受PEP 703提案,让全局解释器锁成为可选

Python之父“摇人”来搞掉GIL,Meta果断出手

END


热门文章

谷歌SRE工程师打拼9年:年薪超60万美元、钱赚够了、对技术不再那么热爱高通拟收购英特尔——Arm与x86之争到此为止?“革命性”「Safe C++」扩展提案:质疑Rust、理解Rust、成为Rust?
我有一个大胆的想法:呼吁Linus延迟退休!Zen浏览器——号称是“开源版Arc”、轻如鸿毛、快如闪电

分享、在看与点赞 Orz
继续滑动看下一个
OSC开源社区
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存